// pages/login/login.js
function request(options) {
  return new Promise((resolve, reject) => {
    wx.request({
      ...options,
      success: (res) => resolve(res),
      fail: (err) => reject(err),
    });
  });
}

Page({

  /**
   * 页面的初始数据
   */
  data: {
    userName: '',
    password: '',
    isLoading: false
  },
  // 用户名输入
  inputUserName(e) {
    this.setData({ userName: e.detail.value.trim() })
  },
 
  inputPassword(e) {
    this.setData({ password: e.detail.value.trim() })
  },
  // 登录逻辑
  // 修改登录请求部分

  async onLogin() {
    if (!this.validateInput()) return
    
    this.setData({ isLoading: true })
    
    try {
      const res = await request({
        url: 'https://pszap.top/login', 
        method: 'POST',
        timeout: 5000, // 5秒超时
        dataType: 'json',
        responseType: 'text',
        data: {
          user_name: this.data.userName,
          password: this.data.password
        }
      })
      console.log(res.userid) 
      this.handleLoginResponse(res)
    } catch (error) {
      console.error('[DEBUG] 错误详情:', error)
      // 增强错误分类处理
      if (error.errMsg.includes("timeout")) {
        wx.showToast({ title: '连接超时，请检查服务器', icon: 'none' })
      } else if (error.errMsg.includes("fail url not in domain list")) {
        wx.showToast({ title: '域名未授权，请检查配置', icon: 'none' })
      } else {
        this.handleNetworkError(error)
      }
    } finally {
      this.setData({ isLoading: false })
    }
  },
  // 输入验证
  validateInput() {
    const { userName, password } = this.data
    
    if (!userName) {
      wx.showToast({ title: '用户名不能为空', icon: 'none' })
      return false
    }
    
    if (!password) {
      wx.showToast({ title: '密码不能为空', icon: 'none' })
      return false
    }
    
    return true
  },
 
  // 处理登录响应
  // 修改存储方式（保持当前文件）
  handleLoginResponse(res) {
    if (res.statusCode !== 200) {
      wx.showToast({ title: `状态码: ${res.statusCode}`, icon:  'none'});
      return;
    }
    
    const { data } = res;
    console.log('登录响应数据:', data);
    
    if (data && data.userid) {
      // 本地存储
      wx.setStorageSync('userInfo', {
        userid: data.userid,
        userName: this.data.userName
      });
      
      // 全局变量存储
      const app = getApp();
      app.globalData.userInfo = { 
        userid: data.userid,       // 全局用户ID
        userName: this.data.userName // 全局用户名
      };
      
      wx.showToast({
        title: '登录成功',
        icon: 'success',
        complete: () => {
          wx.switchTab({ url: '/pages/home/home' })
        }
      })
    } else {
      const errorMsg = data?.msg || `服务器错误（${statusCode}）`;
      wx.showToast({ title: errorMsg, icon: 'none' });
    }
  },
 
  // 网络错误处理
  handleNetworkError(error) {
    console.error('登录请求失败:', error)
    let errorMsg = '网络异常，请检查网络连接'
    
    if (error.errno === 600001) {
      errorMsg = '请求超时，请重试'
    }
    
    wx.showToast({ title: errorMsg, icon: 'none' })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})